An operating system may provide a variety of features (e.g., tools, functions, interfaces, services, and so forth) which modules (e.g., application modules, plug-ins, drivers, extensibility modules, and so on) developed by third-party developers may utilize to take advantage of the operating system. Thus, when a developer makes changes to a feature of the operating system, the changes may affect various third-party modules that have been developed to utilize the feature. For example, when changes are made to one or more features of a print subsystem, the changes may affect a plurality of printer drivers that rely upon the one or more features. However, the developer may not know exactly which printer drivers use the one or more features. Due to the number of different third-party printer drivers that may be supported by the operating system, it may difficult to determine which features are relied upon by each printer driver.
One traditional technique used to determine features of an operating involves individually running and testing each module. In the case of printer drivers, a test print job may be sent to each printer driver to capture calls that are made from the drivers to features available from the operating system. However, testing a large number of printer drivers with a test print job may take considerable time. Further, it may be difficult to arrive at a suitable test print job that causes each printer driver to trigger the set of operating system features with which the developer is concerned. Another traditional technique limits test testing to a sampling of the available printer drivers (e.g., top 5% or 10%). However, this technique does not provide complete information regarding which printer drivers use which features of the operating system. Accordingly, traditional techniques may be complex, time-consuming, and/or provide incomplete results.